package com.eastcom.bm.atom;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;

import org.hibernate.annotations.GenericGenerator;

public class Atom_SmoothStrategy {

	private String id;
	
	private Integer strategyType;
	
	private Integer distanceCount;
	
	private Double factor;
	
	private Integer distanceRange;
	
	private Boolean scatter;
	
	private Boolean enable;

	private Atom_SmoothDefine smoothDefine;
	
	private Integer handleType;
	
	private Long processRange;
	
	@Id
	@Column(name="ID")
	@GenericGenerator(name = "Atom_SmoothStrategy-uuid", strategy = "uuid")
	@GeneratedValue(generator = "Atom_SmoothStrategy-uuid")
	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	@Column(name="strategytype")
	public Integer getStrategyType() {
		return strategyType;
	}

	public void setStrategyType(Integer strategyType) {
		this.strategyType = strategyType;
	}

	@Column(name="distancecount")
	public Integer getDistanceCount() {
		return distanceCount;
	}

	public void setDistanceCount(Integer distanceCount) {
		this.distanceCount = distanceCount;
	}

	@Column(name="factor")
	public Double getFactor() {
		return factor;
	}

	public void setFactor(Double factor) {
		this.factor = factor;
	}

	@Column(name="distanceRange")
	public Integer getDistanceRange() {
		return distanceRange;
	}

	public void setDistanceRange(Integer distanceRange) {
		this.distanceRange = distanceRange;
	}

	@Column(name="scatter")
	public Boolean getScatter() {
		return scatter;
	}

	public void setScatter(Boolean scatter) {
		this.scatter = scatter;
	}

	@Column(name="enable")
	public Boolean getEnable() {
		return enable;
	}

	public void setEnable(Boolean enable) {
		this.enable = enable;
	}
	
	@OneToOne(fetch=FetchType.LAZY,cascade={CascadeType.PERSIST})
	@JoinColumn(name="smoothDefine_id",referencedColumnName="ID")
	public Atom_SmoothDefine getSmoothDefine() {
		return smoothDefine;
	}

	public void setSmoothDefine(Atom_SmoothDefine smoothDefine) {
		this.smoothDefine = smoothDefine;
	}
	
	@Column(name="handleType")
	public Integer getHandleType() {
		return handleType;
	}

	public void setHandleType(Integer handleType) {
		this.handleType = handleType;
	}

	@Column(name="processRange")
	public Long getProcessRange() {
		return processRange;
	}

	public void setProcessRange(Long processRange) {
		this.processRange = processRange;
	}
}
